package com.cloudbroker.bcs.platform.ltb.bizapi.service.ask;

import com.cloudbroker.bcs.common.annotation.CreditsOper;
import com.cloudbroker.bcs.common.annotation.NoLogin;
import com.cloudbroker.bcs.common.annotation.NoShard;
import com.cloudbroker.bcs.common.constants.type.BusinessType;
import com.cloudbroker.bcs.common.entity.HSBCPSBackVO;
import com.cloudbroker.bcs.platform.ltb.bizapi.service.ask.back.AskDetailBack;
import com.cloudbroker.bcs.platform.ltb.bizapi.service.ask.back.AskFreeBack;
import com.cloudbroker.bcs.platform.ltb.bizapi.service.ask.back.AskListQryBack;
import com.cloudbroker.bcs.platform.ltb.bizapi.service.ask.back.AskSearchBack;
import com.cloudbroker.bcs.platform.ltb.bizapi.service.ask.vo.*;

/**
 * Created by daibd19671 on 2016/11/18.
 */
public interface AskBizService {

    @CreditsOper(type = BusinessType.ASK)
    HSBCPSBackVO ask_add(AskAddForm form);

    @NoLogin
    AskListQryBack ask_list_qry(AskListQryForm form);

    HSBCPSBackVO ask_remove(AskRemoveForm form);

    @NoLogin
    AskDetailBack ask_detail(AskDetailForm form);

    HSBCPSBackVO ask_upvote(AskUpvoteForm form);

    @NoLogin
    AskSearchBack ask_search(AskSearchForm form);

    AskFreeBack ask_free(AskFreeForm form);

    @NoLogin
    @NoShard
    AskListQryBack get_leader_ask(LeaderAsk form);

    @NoShard
    AskListQryBack leader_ask_list_qry(AskListQryForm form);
}
